Skip to content

feat(schedule): 일정에 소유자를 저장한다 - #37

Merged
SD-gif merged 1 commit into
mainfrom
feat/schedule-owner
Aug 25, 2026
Merged

feat(schedule): 일정에 소유자를 저장한다#37
SD-gif merged 1 commit into
mainfrom
feat/schedule-owner

Conversation

@SD-gif

@SD-gif SD-gif commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Spring 이 검증한 토큰에서 꺼낸 사용자 ID 를 받아 schedules.user_id 에 저장한다.

배경

지금 일정에는 주인이 없다. GET /schedules 가 전체 사용자의 일정을 반환하고, 남의 일정을
수정하는 것도 막을 수 없다. Spring 에 인증이 붙으면서 소유자를 기록할 수 있게 됐다.

변경

파일 내용
app.py X-Auth-User-Id 헤더를 받아 create_schedule 로 넘긴다
schedule/service.py owner_idsave_schedule 로 전달한다
schedule/persistence.py INSERTuser_id 를 담는다

판단한 것

헤더는 내부 호출 전용이다. 외부에서 들어오는 값이 아니라 Spring 이 액세스 토큰을 검증해
꺼낸 것이다. 두 컨테이너는 같은 도커 네트워크에 있고 이 서버는 외부에 공개되지 않는다.
커뮤니티가 쓰는 공개 X-User-Id 와 헷갈리지 않도록 이름을 달리 했다.

헤더가 없으면 소유자 없는 일정으로 저장한다. Spring 이 아직 인가를 켜지 않아 비로그인
생성이 가능하다.

소유자는 한 번 정해지면 바꾸지 않는다.

user_id = COALESCE(schedules.user_id, EXCLUDED.user_id)

save_scheduleON CONFLICT DO UPDATE 라 일정 수정에서도 실행된다. 수정 요청에는
소유자가 실리지 않으므로, 그대로 덮으면 첫 수정에서 주인이 사라진다.

배포 순서

Spring 의 #81 을 먼저 배포해야 한다.
schedules.user_id 컬럼은 그쪽 V10 migration 이 만든다. 순서가 바뀌면 없는 컬럼에 INSERT 해서
일정 생성이 전부 실패한다.

검증

로컬에 Spring 과 함께 띄워 확인했다.

확인 결과
로그인 상태로 일정 생성 user_id 저장됨
수정(소유자 헤더 없음) 후 user_id 유지됨
비로그인 생성 user_id NULL

🤖 Generated with Claude Code

Spring 이 검증한 액세스 토큰에서 꺼낸 사용자 ID 를 X-Auth-User-Id 헤더로 보낸다.
이를 schedules.user_id 에 저장한다. 없으면 내 일정 목록, 수정 권한, 공유가
성립하지 않는다.

헤더는 Spring 과의 내부 호출에만 쓴다. 외부에서 들어오는 값이 아니라 검증된 토큰에서
꺼낸 것이고, 두 컨테이너는 같은 도커 네트워크에 있으며 이 서버는 외부에 공개되지 않는다.
헤더가 없으면 소유자 없는 일정으로 저장한다. Spring 이 아직 인가를 켜지 않아 비로그인
생성이 가능하다.

소유자는 한 번 정해지면 바꾸지 않는다. save_schedule 은 ON CONFLICT DO UPDATE 라
일정 수정에서도 실행되는데, 수정 요청에는 소유자가 실리지 않는다. 그대로 덮으면
첫 수정에서 주인이 사라진다. COALESCE 로 기존 값을 유지한다.

컬럼은 Spring 의 V10 migration 이 만든다. 그쪽을 먼저 배포해야 한다. 순서가 바뀌면
없는 컬럼에 INSERT 해서 일정 생성이 전부 실패한다.

로컬에서 Spring 과 함께 띄워 확인했다. 로그인 상태로 만든 일정에 user_id 가 저장되고,
소유자 헤더가 없는 수정 요청 뒤에도 값이 유지되며, 비로그인 생성은 NULL 로 남는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@SD-gif
SD-gif merged commit 1a4ea53 into main Aug 25, 2026
@SD-gif
SD-gif deleted the feat/schedule-owner branch August 25, 2026 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant